home *** CD-ROM | disk | FTP | other *** search
- *usr_22.txt* For Vim version 6.0. Last change: 2001 Sep 03
-
- VIM USER MANUAL - by Bram Moolenaar
-
- Finding the file to edit
-
-
- Files can be found everywhere. So how do you find them? Vim offers various
- ways to browse the directory tree. There are commands to jump to a file that
- is mentioned in another. And Vim remembers which files have been edited
- before.
-
- |22.1| The file explorer
- |22.2| The current directory
- |22.3| Finding a file
- |22.4| The buffer list
-
- Next chapter: |usr_23.txt| Editing other files
- Previous chapter: |usr_21.txt| Go away and come back
- Table of contents: |usr_toc.txt|
-
- ==============================================================================
- *22.1* The file explorer
-
- Vim has a plugin that makes it possible to edit a directory. Try this: >
-
- :edit .
-
- Through the magic of autocommands and Vim scripts, the window will be filled
- with the contents of the directory. It looks like this:
-
- " Press ? for keyboard shortcuts ~
- " Sorted by name (.bak,~,.o,.h,.info,.swp,.obj,.orig,.rej at end of list) ~
- "= /home/mool/vim/vim6/runtime/doc/ ~
- ../ ~
- check/ ~
- Makefile ~
- autocmd.txt ~
- change.txt ~
- eval.txt~ ~
- filetype.txt~ ~
- help.txt.info ~
-
- You can see these items:
- 1. A comment about using ? to get help for the functionality of the file
- explorer.
- 2. The second line mentions how the items in the directory are listed. They
- can be sorted in several ways.
- 3. The third line is the name of the current directory.
- 4. The "../" directory item. This is the parent directory.
- 5. The directory names.
- 6. The ordinary file names. As mentioned in the second line, some are not
- here but "at the end of the list".
- 7. The less ordinary file names. You are expected to use these less often,
- therefore they have been moved to the end.
-
- If you have syntax highlighting enabled, the different parts are highlighted
- to make it easier to spot them.
-
- You can use Normal mode Vim commands to move around in the text. For example,
- move to a file and press <Enter>. Now you are editing that file. To go back
- to the explorer use ":edit ." again. CTRL-O also works.
- Try using <Enter> while the cursor is on a directory name. The result is
- that the explorer moves into that directory and displays the items found
- there. Pressing <Enter> on the first directory "../" moves you one level
- higher. Pressing "-" does the same thing, without the need to move to the
- "../" item first.
-
- You can press ? to get short help on the things you can do in the explorer.
- This is what you get:
-
- " <enter> : open file or directory ~
- " o : open new window for file/directory ~
- " O : open file in previously visited window ~
- " p : preview the file ~
- " i : toggle size/date listing ~
- " s : select sort field r : reverse sort ~
- " - : go up one level c : cd to this dir ~
- " R : rename file D : delete file ~
- " :help file-explorer for detailed help ~
-
- The first few commands are for selecting a file to display. Depending on what
- command you use, the file appears somewhere:
-
- <Enter> Uses the current window.
- o Opens a new window.
- O Uses the previously visited window.
- p Uses the preview window, and moves the cursor back
- into the explorer window. |preview-window|
-
- The following commands are used to display other information:
-
- i Display the size and date for the file. Using i again
- will hide the information.
- s Use the field the cursor is in to sort on. First
- display the size and date with i. Then Move the
- cursor to the size of any file and press s. The files
- will now be sorted on size. Press s wile the cursor
- is on a date and the items will be sorted on date.
- r reverse the sorting order (either size or date)
-
- There are a few extra commands:
-
- c Change the current directory to the displayed
- directory. You can then type an ":edit" command for
- one of the files without prepending the path.
- R Rename the file under the cursor. You will be
- prompted for the new name.
- D Delete the file under the cursor. You will get a
- prompt to confirm this.
-
- ==============================================================================
- *22.2* The current directory
-
- Just like the shell, Vim has the concept of a current directory. Suppose you
- are in your home directory and want to edit several files in a directory
- "VeryLongFileName". You could do: >
-
- :edit VeryLongFileName/file1.txt
- :edit VeryLongFileName/file2.txt
- :edit VeryLongFileName/file3.txt
-
- To avoid much of the typing, do this: >
-
- :cd VeryLongFileName
- :edit file1.txt
- :edit file2.txt
- :edit file3.txt
-
- The ":cd" command changes the current directory. You can see what the current
- directory is with the ":pwd" command: >
-
- :pwd
- /home/Bram/VeryLongFileName
-
- Vim remembers the last directory that you used. Use "cd -" to go back to it.
- Example: >
-
- :pwd
- /home/Bram/VeryLongFileName
- :cd /etc
- :pwd
- /etc
- :cd -
- :pwd
- /home/Bram/VeryLongFileName
- :cd -
- :pwd
- /etc
-
-
- WINDOW LOCAL DIRECTORY
-
- When you split a window, both windows use the same current directory. When
- you want to edit a number of files somewhere else in the new window, you can
- make it use a different directory, without changing the current directory in
- the other window. This is called a local directory. >
-
- :pwd
- /home/Bram/VeryLongFileName
- :split
- :lcd /etc
- :pwd
- /etc
- CTRL-W w
- :pwd
- /home/Bram/VeryLongFileName
-
- So long as no ":lcd" command has been used, all windows share the same current
- directory. Doing a ":cd" command in one window will also change the current
- directory of the other window.
- For a window where ":lcd" has been used a different current directory is
- remembered. Using ":cd" or ":lcd" in other windows will not change it.
- When using a ":cd" command in a window that uses a different current
- directory, it will go back to using the shared directory.
-
- ==============================================================================
- *22.3* Finding a file
-
- You are editing a C program that contains this line:
-
- #include "inits.h" ~
-
- You want to see what is in that "inits.h" file. Move the cursor on the name
- of the file and type: >
-
- gf
-
- Vim will find the file and edit it.
- What if the file is not in the current directory? Vim will use the 'path'
- option to find the file. This option is a list of directory names where to
- look for your file.
- Suppose you have your include files located in "c:/prog/include". This
- command will add it to the 'path' option: >
-
- :set path+=c:/prog/include
-
- This directory is an absolute path. No matter where you are, it will be the
- same place. What if you have located files in a subdirectory, below where the
- file is? Then you can specify a relative path name. This starts with a dot:
- >
- :set path+=./proto
-
- This tells Vim to look in the directory "proto", below the directory where the
- file in which you use "gf" is. Thus using "gf" on "inits.h" will make Vim
- look for "proto/inits.h", starting in the directory of the file.
- Without the "./", thus "proto", Vim would look in the "proto" directory
- below the current directory. And the current directory might not be where the
- file that you are editing is located.
-
- The 'path' option allows specifying the directories where to search for files
- in many more ways. See the help on the 'path' option.
- The 'isfname' option is used to decide which characters are included in the
- file name, and which ones are not (e.g., the " character in the example
- above).
-
- When you know the file name, but it's not to be found in the file, you can
- type it: >
-
- :find inits.h
-
- Vim will then use the 'path' option to try and locate the file. This is the
- same as the ":edit" command, except for the use of 'path'.
-
- To open the found file in a new window use CTRL-W f instead of "gf", or use
- ":sfind" instead of ":find".
-
- ==============================================================================
- *22.4* The buffer list
-
- The Vim editor uses the term buffer to describe a file being edited.
- Actually, a buffer is a copy of the file that you edit. When you finish
- changing the buffer, you write the contents of the buffer to the file.
- Buffers not only contain file contents, but also all the marks, settings, and
- other stuff that goes with it.
-
-
- HIDDEN BUFFERS
-
- Suppose you are editing the file one.txt and need to edit the file two.txt.
- You could simply use ":edit two.txt", but since you made changes to one.txt
- that won't work. You also don't want to write one.txt yet. Vim has a
- solution for you: >
-
- :hide edit two.txt
-
- The buffer "one.txt" disappears from the screen, but Vim still knows that you
- are editing this buffer, so it keeps the modified text. This is called a
- hidden buffer: The buffer contains text, but you can't see it.
- The ":hide" command argument is another command. It makes that command
- behave like the 'hidden' option was set. You could also set this option
- yourself. The effect is that when any buffer is abandoned, it becomes hidden.
- Be careful! When you have hidden buffers with changes, don't exit Vim
- without making sure you have saved all the buffers.
-
-
- INACTIVE BUFFERS
-
- When a buffer has been used once, Vim remembers some information about it.
- When it is not displayed in a window and it is not hidden, it is still in the
- buffer list. This is called an inactive buffer. Overview:
-
- Active Appears in a window, text loaded.
- Hidden Not in a window, text loaded.
- Inactive Not in a window, no text loaded.
-
- The inactive buffers are remembered, because Vim keeps information about them,
- like marks. And remembering the file name is useful too, so that you can see
- which files you have edited. And edit them again.
-
-
- LISTING BUFFERS
-
- View the buffer list with this command: >
-
- :buffers
-
- A command which does the same, is not so obvious to list buffers, but is much
- shorter to type: >
-
- :ls
-
- The output could look like this:
-
- 1 #h "help.txt" line 62 ~
- 2 %l+ "usr_21.txt" line 1 ~
- 3 "usr_toc.txt" line 1 ~
-
- The first column contains the buffer number. You can use this to edit the
- buffer without having to type the name, see below.
- After the buffer number come the flags. Then the name of the file
- and the line number where the cursor was the last time.
- The flags that can appear are these (from left to right):
-
- u Buffer is unlisted |unlisted-buffer|.
- % Current buffer.
- # Alternate buffer.
- l Buffer is loaded and displayed.
- h Buffer is loaded but hidden.
- = Buffer is read-only.
- - Buffer is not modifiable, the 'modifiable' option is off.
- + Buffer has been modified.
-
-
- EDITING A BUFFER
-
- You can edit a buffer by its number. That avoids having to type the file
- name: >
-
- :buffer 2
-
- But the only way to know the number is by looking in the buffer list. You can
- use the name, or part of it, instead: >
-
- :buffer help
-
- Vim will find a best match for the name you type. If there is only one
- buffer that matches the name, it will be used. In this case "help.txt".
- To open a buffer in a new window: >
-
- :sbuffer 3
-
- This works with a name as well.
-
-
- USING THE BUFFER LIST
-
- You can move around in the buffer list with these commands:
-
- :bnext go to next buffer
- :bprevious go to previous buffer
- :bfirst go to the first buffer
- :blast go to the last buffer
-
- To remove a buffer from the list, use this command: >
-
- :bdelete 3
-
- Again, this also works with a name.
- If you delete a buffer that was active (visible in a window), that window
- will be closed. If you delete the current buffer, the current window will be
- closed. If it was the last window, Vim will find another buffer to edit. You
- can't be editing nothing!
-
- Note:
- Even after removing the buffer with ":bdelete" Vim still remembers it.
- It's actually made "unlisted", it no longer appears in the list from
- ":buffers". The ":buffers!" command will list unlisted buffers (yes,
- Vim can do the impossible). To really make Vim forget about a buffer,
- use ":bwipe". Also see the 'buflisted' option.
-
- ==============================================================================
-
- Next chapter: |usr_23.txt| Editing other files
-
- Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl:
-